package com.qingcheng.service.order;
import com.qingcheng.entity.PageResult;
import com.qingcheng.pojo.order.Order;
import com.qingcheng.pojo.order.OrderAndOrderItem;
import com.qingcheng.pojo.order.OrderItem;

import java.util.*;

/**
 * order业务逻辑层
 */
public interface OrderService {


    public List<Order> findAll();


    public PageResult<Order> findPage(int page, int size);


    public List<Order> findList(Map<String,Object> searchMap);


    public PageResult<Order> findPage(Map<String,Object> searchMap,int page, int size);


    public Order findById(String id);

    public Map<String, Object> add(Order order);


    public void update(Order order);


    public void delete(String id);

    public OrderAndOrderItem findOrderResultById(String id );//订单详情以及订单明细

    public List<Order> findOrderListByIds(Map searchMap);//根据订单ID数据查询订单集合

    public void batchSend(List<Order> orders);//批量修改订单状态、发货状态、发货时间。

    /**
     * 订单超时处理
     */
    public void orderTimeOutLogic();

    /**
     * @param orderItems   订单明细拆分对象
     * @return
     */
    public void splitOrderItem(List<OrderItem> orderItems);

    /**
     * 合并订单
     * @param orderId1
     * @param orderId2
     */
    public void merge(String orderId1, String orderId2);

    /**
     * 修改订单状态
     * @param orderId
     * @param transactionId
     */
    public void updatePayStatus(String orderId,String transactionId);

}
